package com.dkm.orproject.dkmoa.dao;

import com.dkm.orproject.dkmoa.domain.OaRole;
import com.dkm.orproject.dkmoa.domain.OaRolePersonnel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface OaRoleMapper {
    /**
     * 根据id删除
     *
     * @param pkRoleId 角色ID
     * @return 是否删除
     */
    int deleteByPrimaryKey(Long pkRoleId);

    /**
     * 增加角色
     *
     * @param record 角色的信息
     * @return 是否更新成功
     */
    int insertSelective(OaRole record);

    /**
     * 根据id 查看角色的信息
     *
     * @param pkRoleId 角色的Id
     * @return 角色的信息
     */
    OaRole selectByPrimaryKey(Long pkRoleId);

    /**
     * 更新角色
     *
     * @param record 角色的信息
     * @return 是否更新成功
     */
    int updateByPrimaryKeySelective(OaRole record);

    /**
     * 逻辑删除
     * @param pkRoleId 角色Id
     * @param updatedBy 更新人
     * @param updatedTime 更新时间
     * @return 影响的行数
     */
    int updateById(@Param("pkRoleId") Long pkRoleId, @Param("updatedBy") String updatedBy, @Param("updatedTime") String updatedTime);

    /**
     * 批量物理删除
     *
     * @param list 角色id的集合
     * @return 删除的行数
     */
    int deleteAll(List<Long> list);

    /**
     * 批量逻辑删除
     *
     * @param list 角色id的集合
     * @param updatedBy 更新人
     * @param date 更新时间
     * @return 删除的行数
     */

    int updateAll(@Param("list") List<Long> list,@Param("updatedBy") String updatedBy,@Param("date") String date);

    /**
     * 查看所有角色
     * 查看所有角色
     * @return 角色的集合
     */
    List<OaRole> findByAll();

    /**
     * 查看所有的
     *
     * @param role      角色
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 角色的集合
     */
    List<OaRole> findAll(@Param(value = "role") OaRole role, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 统计数量
     *
     * @param role      角色
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 数量
     */
    Long rowcount(@Param(value = "role") OaRole role, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     *根据人员id查看他的角色
     * @param personnelId 人员id
     * @return 角色的信息
     */
    OaRolePersonnel findByIds(@Param("personnelId") Long personnelId);

  /*  *//**
     * 根据人员id查看他的角色
     *
     * @return 集合
     *//*
    List<OaRole> roleFindAll();*/

}